home *** CD-ROM | disk | FTP | other *** search
/ Delphi Developer's Kit 1996 / Delphi Developer's Kit 1996.iso / power / novtli / novtest.pas < prev    next >
Pascal/Delphi Source File  |  1995-12-22  |  7KB  |  239 lines

  1. unit Novtest;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls, Novtli, About;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     NovTLI1: TNovTLI;
  12.     Connect: TButton;
  13.     SendData: TButton;
  14.     Listen: TButton;
  15.     Close: TButton;
  16.     Disconnect: TButton;
  17.     CancelListen: TButton;
  18.     AddrOptions: TGroupBox;
  19.     UseServerName: TRadioButton;
  20.     UsePhysicalAddr: TRadioButton;
  21.     Port: TEdit;
  22.     Label2: TLabel;
  23.     Edit1: TEdit;
  24.     Memo1: TMemo;
  25.     NetNode: TGroupBox;
  26.     AddrNet: TEdit;
  27.     AddrNode: TEdit;
  28.     LabelNet: TLabel;
  29.     LabelNode: TLabel;
  30.     Label5: TLabel;
  31.     GroupBox1: TGroupBox;
  32.     ServerName: TEdit;
  33.     LabelServerName: TLabel;
  34.     HelpButton: TButton;
  35.     procedure ConnectClick(Sender: TObject);
  36.     procedure NovTLI1SessionConnected(Sender: TObject; Socket: Integer);
  37.     procedure NovTLI1DataAvailable(Sender: TObject; Socket: Integer);
  38.     procedure FormCreate(Sender: TObject);
  39.     procedure SendDataClick(Sender: TObject);
  40.     procedure ListenClick(Sender: TObject);
  41.     procedure CloseClick(Sender: TObject);
  42.     procedure DisconnectClick(Sender: TObject);
  43.     procedure CancelListenClick(Sender: TObject);
  44.     procedure NovTLI1SessionAvailable(Sender: TObject; Socket: Integer);
  45.     procedure NovTLI1SessionClosed(Sender: TObject; Socket: Integer);
  46.     procedure UseServerNameClick(Sender: TObject);
  47.     procedure UsePhysicalAddrClick(Sender: TObject);
  48.     procedure HelpButtonClick(Sender: TObject);
  49.   private
  50.     { Private declarations }
  51.   public
  52.     { Public declarations }
  53.   end;
  54.  
  55. var
  56.   Form1: TForm1;
  57.   clientserver: integer;
  58.  
  59. implementation
  60.  
  61. {$R *.DFM}
  62.  
  63. procedure TForm1.ConnectClick(Sender: TObject);
  64. var
  65.   szMsg: array[0..255] of char;
  66. begin
  67.   Listen.Enabled := False;
  68.   If UseServerName.Checked = True Then
  69.     NovTLI1.ServerName := ServerName.Text
  70.   else
  71.   begin
  72.     if AddrNode.Text = '0080C72E12D4' then
  73.     begin
  74.       StrPCopy(szMsg,'This is the MAC address of the authors'#13#10);
  75.       StrCat(szMsg,' ethernet adapter. You should obtain you''re physical'#13#10);
  76.       StrCat(szMsg,' address with the userlist /a netware command, or'#13#10);
  77.       StrCat(szMsg,'from the display when the driver is loaded at boot time');
  78.       if Application.MessageBox(szMsg,'ERROR',MB_OKCANCEL) = IDCANCEL then
  79.         exit;
  80.     end;
  81.     NovTLI1.Addr := AddrNet.Text + '/' + AddrNode.Text;
  82.     NovTLI1.Port := StrToInt(Port.Text);
  83.   end;
  84.   NovTLI1.Connect;
  85.   clientserver := 1;
  86.   Connect.Enabled := False;
  87. end;
  88.  
  89. procedure TForm1.NovTLI1SessionConnected(Sender: TObject; Socket: Integer);
  90. begin
  91.   Connect.Enabled := False;
  92.   SendData.Enabled := True;
  93.   Listen.Enabled := False;
  94.   Close.Enabled := True;
  95.   Disconnect.Enabled := True;
  96.   CancelListen.Enabled := False;
  97. end;
  98.  
  99. procedure TForm1.NovTLI1DataAvailable(Sender: TObject; Socket: Integer);
  100. var
  101.   Buf: string;
  102. begin
  103.   Memo1.Lines.Add('Data recevied from socket(' + IntToStr(Socket) + ')');
  104.   buf := NovTLI1.Text;
  105.   Memo1.Lines.Add('-->' + buf + '<--');
  106.   If clientserver = 2 Then
  107.   begin
  108.     NovTLI1.Text := buf;
  109.     Memo1.Lines.Add('...Buffer echoed back to client');
  110.   end;
  111. end;
  112.  
  113. procedure TForm1.FormCreate(Sender: TObject);
  114. begin
  115. Port.Hint := 'Client: Enter the port number to connect to'#13#10'Server: Enter the  port number to listen on';
  116. Port.Text := IntToStr(NovTLI1.Port);
  117. ServerName.Hint := 'Client: Server name to connect to'#13#10 +
  118.   'Server: Name of the listening server'#13#10'(Used only when ''Use ServerName'' is checked)'#13#10 +
  119.   'You must be connected to a Netware network that supports'#13#10 +
  120.   'the Service Advertising Protocol (SAP) to use this feature';
  121. UseServerName.Hint := 'Use the ServerName instead of the physical addressing mechanisms'#13#10 +
  122.   '(You must be connected to a NetWare network that supports'#13#10 +
  123.   ' The Service Advertising Protocol (SAP) to use this option';
  124. AddrNode.Hint := 'Enter the 12 digit hexadecimal node number (MAC Address)'#13#10 +
  125.   'of you''re network card';
  126. AddrNet.Hint := 'Enter the 8 digit hexadecimal network number'#13#10 +
  127.   'You can obtain the Net and Node numbers by issuing the'#13#10 +
  128.   'Netware command ''userlist /a''';
  129. If NovTLI1.Port = 0 Then
  130.   Port.Text := '31';
  131. If NovTLI1.Addr = '' Then
  132. begin
  133.   AddrNet.Text := '00000000';
  134.   AddrNode.Text := '0080C72E12D4';
  135. end;
  136. Connect.Enabled := True;
  137. SendData.Enabled := False;
  138. Listen.Enabled := True;
  139. Close.Enabled := False;
  140. Disconnect.Enabled := False;
  141. CancelListen.Enabled := False;
  142. clientserver := 0;
  143. UseServerName.Checked := True;
  144. ServerName.Text := 'MYServer';
  145. end;
  146.  
  147. procedure TForm1.SendDataClick(Sender: TObject);
  148. begin
  149.   NovTLI1.Text := Edit1.Text;
  150. end;
  151.  
  152. procedure TForm1.ListenClick(Sender: TObject);
  153. begin
  154.   Edit1.Text := '';
  155.   Edit1.Enabled := False;
  156.   Connect.Enabled := False;
  157.   SendData.Enabled := False;
  158.   If UseServerName.Checked = True Then
  159.     NovTLI1.ServerName := ServerName.Text;
  160.   NovTLI1.Port := StrToInt(Port.Text);
  161.   NovTLI1.Listen;
  162.   Listen.Enabled := False;
  163.   CancelListen.Enabled := True;
  164.   Disconnect.Enabled := False;
  165.   clientserver := 2;
  166. end;
  167.  
  168. procedure TForm1.CloseClick(Sender: TObject);
  169. begin
  170.   NovTLI1.Close;
  171.   Connect.Enabled := True;
  172.   SendData.Enabled := False;
  173.   Listen.Enabled := True;
  174.   Close.Enabled := False;
  175.   Disconnect.Enabled := False;
  176.   CancelListen.Enabled := False;
  177.   clientserver := 0;
  178. end;
  179.  
  180. procedure TForm1.DisconnectClick(Sender: TObject);
  181. begin
  182.   NovTLI1.Disconnect;
  183.   Disconnect.Enabled := False;
  184. end;
  185.  
  186. procedure TForm1.CancelListenClick(Sender: TObject);
  187. begin
  188.   If NovTLI1.SocketNumber <> -1 Then
  189.     NovTLI1.Close;
  190.   If NovTLI1.ListenSocketNumber <> -1 Then
  191.   begin
  192.     NovTLI1.SocketNumber := NovTLI1.ListenSocketNumber;
  193.     NovTLI1.Close;
  194.   End;
  195.   Connect.Enabled := True;
  196.   SendData.Enabled := False;
  197.   Listen.Enabled := True;
  198.   Close.Enabled := False;
  199.   Disconnect.Enabled := False;
  200.   CancelListen.Enabled := False;
  201. end;
  202.  
  203. procedure TForm1.NovTLI1SessionAvailable(Sender: TObject; Socket: Integer);
  204. begin
  205.   NovTLI1.Accept;
  206.   Memo1.Lines.Add('Client session accepted on socket(' + IntToStr(Socket) + ')');
  207.   Listen.Enabled := False;
  208.   Close.Enabled := True;
  209. end;
  210.  
  211. procedure TForm1.NovTLI1SessionClosed(Sender: TObject; Socket: Integer);
  212. begin
  213.   Memo1.Lines.Add('Session on socket(' + IntToStr(Socket) + ') is closed');
  214.   Close.Enabled := False;
  215. end;
  216.  
  217. procedure TForm1.UseServerNameClick(Sender: TObject);
  218. begin
  219.   NetNode.Enabled := False;
  220.   AddrNet.Enabled := False;
  221.   AddrNode.Enabled := False;
  222.   ServerName.Enabled := True;
  223. end;
  224.  
  225. procedure TForm1.UsePhysicalAddrClick(Sender: TObject);
  226. begin
  227.   NetNode.Enabled := True;
  228.   AddrNet.Enabled := True;
  229.   AddrNode.Enabled := True;
  230.   ServerName.Enabled := False;
  231. end;
  232.  
  233. procedure TForm1.HelpButtonClick(Sender: TObject);
  234. begin
  235.   AboutBox.Show;
  236. end;
  237.  
  238. end.
  239.